System and method for pre-caching a first portion of a video file on a set-top box

ABSTRACT

A method of pre-caching video content is provided and includes measuring an available bandwidth of a data connection to a set top box. The available bandwidth measurement can be an average available bandwidth of the data connection to the set top box or a minimum available bandwidth of the data connection to the set top box. Each of a plurality of video files is divided into a first portion and a second portion and the size of each first portion is based on the available bandwidth measurement. The first portion of each of the plurality of video files is downloaded over the data connection and stored in a memory within the set top box. A list is displayed at a display device and includes a list of video titles that correspond to the plurality of video files that have only a first portion downloaded to the memory.

FIELD OF THE INVENTION

The present disclosure relates generally to set top boxes.

BACKGROUND

For years, televisions have been a staple of consumer electronics sales.As such, a large majority of households in the United States owns atleast one television. Providing content to those televisions is alucrative business and there are numerous types of television content tochoose from. For example, viewers can subscribe to digital broadbandtelevision networks and digital satellite television networks in orderto receive standard digital television content or high definitiontelevision content via a broadband connection or a satellite connection.In addition, many companies now offer digital video recorders (DVRs)that can be incorporated into standard set top boxes. A DVR can be usedto record digital television content transmitted to the set top box.

Many service providers also offer streaming video content and pre-cachevideo content in order to provide a user with content that is tailoredto his or her needs or tastes. Unfortunately, streaming video contentsystems and pre-cache video content systems have limitations. Forexample, in a streaming video content system, the set top box builds upa buffer of the streaming video before video content can be displayed.The buffer is provided in order to account for variations in thedownload performance of the network. Depending on the availablebandwidth and the level at which the content is encoded, the cachingphase of the streaming video content can take more than several hours.

With pre-cache video content systems, video files are stored in theirentirety on the set top box in anticipation of a user wishing todownload one or more of the video files. A pre-cache video contentsystem eliminates the wait, but due to the relatively large sizes of thevideo files, only a limited number of movies can be pre-cached on theset top box, e.g., five to fifteen video files. As such, if a customeris not interested in one or more of the pre-cached video files, he orshe must wait for the entire video file to be downloaded.

Accordingly, there is a need for an improved system and method forpre-caching video files on a set top box.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is pointed out with particularity in the appendedclaims. However, other features are described in the following detaileddescription in conjunction with the accompanying drawings in which:

FIG. 1 is a block diagram that is representative of an entertainmentsystem;

FIG. 2 is a flow chart to illustrate general operating logic that can beused to pre-cache video files at a set top box and broadcast the videofiles via the entertainment system; and

FIG. 3 is a flow chart to illustrate general configuration logic thatcan be used to determine the number of video files to be pre-cached atthe set top box.

DETAILED DESCRIPTION OF THE DRAWINGS

A method of pre-caching video content is provided and includes measuringan available bandwidth of a data connection to a set top box. In oneembodiment, the available bandwidth measurement is an average availablebandwidth of the data connection to the set top box. However, theavailable bandwidth measurement can be a minimum available bandwidth ofthe data connection to the set top box. Each of a plurality of videofiles is divided into a first portion and a second portion and the sizeof each first portion is based on the available bandwidth measurement.The first portion of each of the plurality of video files is downloadedover the data connection. Also, the first portion of each of theplurality of video files is stored in a memory within the set top box. Alist is displayed at a display device and includes a list of videotitles that correspond to the plurality of video files that have only afirst portion downloaded to the memory.

In an illustrative embodiment, the total number of video titles on thelist is determined at least partially based on the available bandwidthmeasurement. Moreover, when a user selection of a video title isdetected, the first portion of a video file is accessed from memory andcorresponds to the video title selected by the user. Then, the firstportion of the video file can be displayed at the display device. Themethod further includes downloading a second portion of the video fileover the data connection while the first portion is being displayed atthe display device. The second portion of the video file can bedisplayed after the first portion has been displayed.

In another embodiment, a device is provided for managing video content.The device includes a processor and a computer-readable memoryaccessible to the processor. The computer readable-memory includes anavailable bandwidth measurement of a data connection to the device and alist of video titles. Each video title on the list corresponds to afirst portion of a video file that is available immediately at thedevice and a second portion of the video file that is downloadable tothe device but stored remotely from the device.

In still another embodiment, a system for managing video content isprovided and includes a display device. A set top box is coupled to thedisplay device and includes a data interface to a remote video contentsource. The set top box includes a processor, and a computer-readablemedium accessible by the processor. A program is embedded in thecomputer-readable medium. The program includes instructions to measurean available bandwidth of the data interface to the set top box.Further, the program includes instructions to receive a first portion ofeach of a plurality of video files and store the first portion of eachof the plurality of video files in a memory within the set top box. Thesize of the memory to store each first portion is at least partiallydetermined based on the available bandwidth measurement. The programalso includes instructions to display a list of video titles at thedisplay device. Each video title on the list represents a video filethat has the first portion stored in the memory of the set top box and asecond portion that is downloadable to the memory while the firstportion is displayed at the display device.

In yet another embodiment, a method of pre-caching video contentincludes determining a first available bandwidth measurement of a dataconnection to a set top box. A memory area is allocated for storing afirst portion of a video file that is to be downloaded to the memoryarea. The size of the memory area is partially based on the firstavailable bandwidth measurement. A second available bandwidthmeasurement of the data connection to the set top box can be determined.Moreover, the size of the memory area for storing the first portion canbe adjusted based on the second available bandwidth measurement.

In yet still another embodiment, a method for handling video contentincludes deploying a set top box at a designated location. The set topbox is connected to a data interface and activated. A first availablebandwidth measurement of the data interface is determined. A segment ofa memory within the set top box is apportioned. The size of the segmentof the memory is based on the first available bandwidth measurement.Also, the segment of the memory is configured to store a first portionof each of a plurality of video files. A second portion of each of theplurality of video files is downloadable to the set top box via the datainterface.

Referring to FIG. 1, a system for managing movies and video files fordisplay at a television is illustrated and is generally designated 100.As illustrated in FIG. 1, in an exemplary, non-limiting embodiment, thesystem 100 includes a television 102, but it can be appreciated that thesystem 100 can include any display device on which video content can bedisplayed. FIG. 1 indicates that a set top box 104 can be connected tothe television 102 via a first data connection or interface 106. The settop box 104 is also connected to a video content provider, e.g., a cablecompany or a digital satellite company, via a second data connection orinterface 108. FIG. 1 also depicts a remote control unit 110 that cancommunicate with the set top box 104 to allow user interaction with thesystem 100 during operation. The remote control unit 110 can communicatewith the set top box 104 via one or more infrared (IR) signals, or otherwireless signals.

As indicated in FIG. 1, the set top box 104 includes a processor 112 inwhich logic, such as user interface logic, can be executed. Further, theset top box 104 includes a memory 114 in which content from the contentprovider can be downloaded and stored. FIG. 1 also shows that the settop box 104 can include a receiver 116, e.g., an IR receiver, that isconfigured to receive one or more IR signals from the remote controlunit 110. Moreover, as depicted in FIG. 1, the remote control unit 110can include a plurality of buttons 118 that can be toggled by a userduring operation, e.g., in order to request one or more video files tobe downloaded from the content provider.

Referring to FIG. 2, a particular embodiment of operating logic of thesystem 100 (FIG. 1) is shown and commences at block 200 wherein duringoperation, the following steps are performed: At block 202, a firstportion of a plurality of video files are downloaded to the memory 114(FIG. 1) within the set top box 104 (FIG. 1). Moving to block 204, alist of available video files is displayed. In an illustrativeembodiment, the list of available video files includes titlescorresponding to each of the video files from which a first portion wasdownloaded to the memory 114 (FIG. 1). Each of these video files isavailable for immediate display. At step 206, a determination is madeconcerning the selection of an available video file. If an availablevideo file is not selected, the logic ends at state 208. On the otherhand, if an available video file is selected, the logic proceeds toblock 210, and the set top box 104 (FIG. 1) begins transmitting thefirst portion of the selected video file immediately to the displaydevice 102 (FIG. 1) for display at the display device 102 (FIG. 1).

Proceeding to block 212, while the first portion of the selected videofile is being displayed, a second portion of the selected video file isdownloaded and stored in the memory 114 (FIG. 1). In an illustrativeembodiment, the second portion of the selected video file is theremaining portion of the selected video file to be downloaded. In otherwords, the first portion and the second portion of the selected videofile constitute a complete video file. Moving to step 214, a decision isundertaken in order to determine if the first portion of the selectedvideo file has ended. If not, the method continues to block 216 and thefirst portion of the selected video file continues to be displayed.

When the first portion of the selected video file ends, the logicproceeds to block 218. At block 218, the second portion of the selectedvideo file is seamlessly displayed at the end of the first portion ofthe video file. Moving to step 220, a decision is undertaken in order todetermine whether the video file has ended. If the video file has notended, the logic continues to block 222 where the set top box 104(FIG. 1) continues to display the video file. Conversely, when the videofile ends, the logic ends at state 208.

FIG. 3 shows a particular embodiment of a method for configuring the settop box. At block 300, the set top box 104 (FIG. 1) is deployed in acustomer home. Moving to block 302, the set top box 104 (FIG. 1) isconnected to the display device 102 (FIG. 1). The set top box 104(FIG. 1) can be connected to the content provider via the secondbroadband connection 108 (FIG. 1). Continuing to block 306, the set topbox 104 (FIG. 1) is activated. At block 308, the bandwidth available viathe second broadband connection 104 (FIG. 1) is measured by the set topbox 104 (FIG. 1). In an illustrative embodiment, the measured availablebandwidth is a minimum available bandwidth. However, the measuredavailable bandwidth can be an average available bandwidth measured overa period of time. Next, at block 310, a pre-cache file size is set foreach video file based on the available bandwidth measured above. As themeasured available bandwidth increases, the pre-cache file size for eachvideo file can be decreased since the remaining portion of each videofile to be streamed can be transmitted to the set top box more quickly.Further, as the cache file size decreases, additional video files can bepre-cached within the memory 114 (FIG. 1) of the set top box (FIG. 1).The method ends at state 312.

In an illustrative embodiment, a user can control display of theselected video file while it is playing at the display device 102 (FIG.1). For example, a user can pause the video file, rewind the video file,stop the video file, and fast-forward the video file. Moreover, when avideo file is selected, the set top box 104 (FIG. 1) can delay playingthe first portion of the video file, but continue to download the secondportion of the video file and add it to the first portion of theselected video file in the memory.

With the configuration of structure described above, the system andmethod for pre-caching portions of video files, such as movies, on a settop box, allows a significantly larger number of movies to be availablefor immediate viewing at a display device coupled to a set top box.Thus, a user is provided with a more diverse selection of movies. Forexample, a conventional set top box may be able to store up to tenmovies that are available for immediate viewing. In an illustrativeembodiment, the system disclosed herein can store a first portion of upto one hundred movies where each of those one hundred movies availablefor immediate viewing. Moreover, when a user selects a movie forviewing, he or she can begin watching a first portion the movieimmediately, or at least in near real-time, while the remainder of themovie is downloaded in the background. The user sees the cached portion,i.e., the first portion, of the movie first, and by the time the cachedportion is complete, more of the movie, e.g., part or all of the secondportion, has streamed onto the set top box. Transition from the cachedportion to the streaming portion is substantially transparent. From theuser's perspective, the movie is displayed as if it was pre-storedentirely on the set top box. The present system and method may beimplemented without requiring an increased size of a hard drive andwithout an increase to the cost of the set top box.

The above-disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other embodiments, which fall withinthe true spirit and scope of the present invention. Thus, to the maximumextent allowed by law, the scope of the present invention is to bedetermined by the broadest permissible interpretation of the followingclaims and their equivalents, and shall not be restricted or limited bythe foregoing detailed description.

What is claimed is:
 1. A method comprising: measuring an availablebandwidth of a data connection to a set top box; dividing a video fileinto a first portion and a second portion, wherein a size of the firstportion of the video file is selected at least partially based on apre-cache file size associated with the video file, wherein thepre-cache file size is based on the available bandwidth; downloadingonly the first portion of the video file over the data connection to amemory in the set top box; managing a list of video titles correspondingto video files that have only a first portion downloaded; wherein atotal number of video titles on the list of video titles is determinedat least partially based on the available bandwidth; downloading thesecond portion of the video file from a common source over the dataconnection while the first portion is being displayed by the set top boxat a display device; in response to detecting an increase in theavailable bandwidth, decreasing the pre-cache file size associated withthe video file and determining a second available bandwidth of the dataconnection; and re-apportioning the total number of video titles on thelist of video titles based on the second available bandwidth.
 2. Themethod of claim 1, further comprising: storing a first portion of eachof a plurality of video files in the memory within the set top box; anddisplaying the list of video titles at the display device.
 3. The methodof claim 2, further comprising: detecting a user selection of aparticular video title; accessing the first portion corresponding to theparticular video title selected by the user from the memory; anddisplaying the first portion at the display device.
 4. The method ofclaim 2, further comprising displaying the second portion of the videofile after the first portion has been displayed.
 5. The method of claim1, wherein the available bandwidth is an average available bandwidthover a period of time of the data connection to the set top box.
 6. Themethod of claim 1, wherein the available bandwidth is a minimumavailable bandwidth of the data connection to the set top box.
 7. Adevice comprising: a processor; a computer-readable memory accessible tothe processor, the computer-readable memory having instructions to causethe processor to perform operations including: measuring an availablebandwidth of a data connection to the device; managing a list of videotitles, wherein each video title on the list corresponds to a firstportion of a respective video file that is available immediately at thedevice and a second portion of the respective video file that isdownloadable from a common source to the device but stored remotely fromthe device; wherein a size of the first portion of the respective videofile is based on a pre-cache file size associated with the respectivevideo file, wherein the pre-cache file size is based on the availablebandwidth, and wherein a total number of video titles on the list ofvideo titles is determined at least partially based on the availablebandwidth; in response to detecting an increase in the availablebandwidth, decreasing the pre-cache file size associated with the videofile and determining a second available bandwidth of the dataconnection; and re-apportioning the total number of video titles on thelist of video titles based on the second available bandwidth.
 8. Thedevice of claim 7, wherein the operations further include storing thetotal number of video titles on the list based on the availablebandwidth.
 9. The device of claim 8, wherein the operations furtherinclude: detecting a particular video title selected by a user from thelist of video titles; and displaying the first portion of the video filethat corresponds to the particular video title selected by the user at adisplay device coupled to the device.
 10. The device of claim 9, whereinthe operations further include downloading the second portion of therespective video file to the computer-readable memory.
 11. The device ofclaim 7, wherein the available bandwidth is an average availablebandwidth.
 12. The device of claim 7, wherein the available bandwidth isa minimum available bandwidth over a period of time.
 13. A systemcomprising: a set top box connectable to a display device, the set topbox configured to communicate via a data interface to a remote videocontent source, the set top box comprising: a processor; and acomputer-readable medium accessible by the processor, thecomputer-readable medium including instructions executable by theprocessor to perform operations including: measuring an availablebandwidth of the data interface; receiving a first portion of each of aplurality of video files; storing the first portion of each of theplurality of video files in a memory within the set top box, wherein asize of the memory to store each first portion is determined based on apre-cache file size associated with at least one of the plurality ofvideo files, wherein the pre-cache file size is based on the availablebandwidth; displaying a list of video titles at the display device, eachvideo title on the list corresponding to a video file having the firstportion stored in the memory of the set top box and a second portionthat is downloadable from a common source while the first portion isdisplayed by the set top box at the display device; in response todetecting an increase in the available bandwidth, decreasing thepre-cache file size associated with the at least one of the plurality ofvideo files and determining a second available bandwidth; andre-apportioning a total number of video titles on the list of videotitles based on the second available bandwidth.
 14. The system of claim13, wherein the operations further include determining the total numberof video titles in the list, the total number of video titles at leastpartially determined based on the available bandwidth.
 15. The system ofclaim 14, wherein the operations further include: receiving a selectedvideo title via a remote control unit signal; and displaying a firstportion that corresponds to the selected video title.
 16. The system ofclaim 13, wherein the available bandwidth is an average availablebandwidth of the data interface.
 17. The system of claim 13, wherein theavailable bandwidth is a minimum available bandwidth of the datainterface over a period of time.
 18. A method comprising: activating aset top box when the set top box is connected to a data interface;determining an available bandwidth of the data interface; apportioning asegment of a memory within the set top box, wherein a size of thesegment of the memory is based on a pre-cache file size associated witha video file to be downloaded to the memory, wherein the pre-cache filesize is based on a first available bandwidth, wherein the segment of thememory is configured to store a first portion of the video file, andwherein a second portion of the video file is downloadable from a commonsource to the set top box via the data interface while the first portionis being displayed by the set top box at a display device; in responseto detecting a change in the available bandwidth, adjusting thepre-cache file size associated with the video file and determining asecond available bandwidth of the data interface; apportioning a numberof video titles on a list of video titles on the set top box based onthe second available bandwidth, wherein the number of video titles onthe list of video titles is determined at least partially based on theavailable bandwidth decreasing the pre-cache file size when theavailable bandwidth increases; and increasing a number of video filesthat have a first portion stored in the segment of the memory after thepre-cache file size has been decreased.
 19. The method of claim 18,further comprising: connecting the set top box to the display device;and displaying the list of video titles, each of the video titles in thelist corresponding to one of a plurality of video files having the firstportion stored in the segment of the memory and having the secondportion stored remotely from the set top box.
 20. The method of claim19, further comprising accessing the first portion of a first video filestored in the segment of the memory in response to a first video titlebeing selected from the list of video titles.
 21. The method of claim20, further comprising displaying the first portion of the first videofile on the display device.
 22. The method of claim 21, furthercomprising downloading the second portion of the first video file overthe data interface while the first portion is being displayed at thedisplay device.
 23. The method of claim 22, further comprising storingthe second portion of the first video file in the memory.
 24. The methodof claim 23, further comprising: accessing the second portion of thefirst video file from the memory; and displaying the second portion onthe display device after displaying the first portion.
 25. The method ofclaim 18, further comprising re-apportioning the size of the segment ofthe memory at least partially based on the second available bandwidth.26. The method of claim 18, wherein the second available bandwidth is anaverage available bandwidth over a period of time.
 27. The method ofclaim 18, wherein the segment of the memory is configured to store afirst portion of each of a plurality of video files.
 28. The method ofclaim 18, further comprising connecting to a content provider via thedata interface.
 29. The method of claim 18, wherein the availablebandwidth is an average available bandwidth of the data interfacemeasured over a period of time.
 30. The method of claim 18, wherein theavailable bandwidth is a minimum available bandwidth of the datainterface over a period of time.
 31. The method of claim 1, furthercomprising: delaying playback of a selected video file that has a firstportion downloaded to the memory; and downloading the second portionwhile playback of the first portion is delayed.
 32. The method of claim1, further comprising decreasing the size of the first portion when theavailable bandwidth increases.
 33. The method of claim 32, furthercomprising increasing a number of video files that have a first portionstored in the memory when the size of the first portion has beendecreased.